In logic, a four-valued logic is used to model signal values in digital circuits: the four values are Z, X and the boolean values 1 and 0. Z stands for high impedance or open circuit, while X stands for "unknown". There is also a 9-valued logic standard by the IEEE called IEEE 1164.
There are other types of four value logic, such as Belnap's four-valued relevance logic: the possible values are 1) true, 2) false, 3) both true and false, and 4) neither true nor false. Belnap's logic is designed to cope with multiple information sources such that if only true is found then true is assigned, if only false is found then false is assigned, if some sources say true and others say false then both is assigned, and if no information is given by any information source then neither is assigned.
Contents |
Digital electronics theory supports four distinct logic values (as defined in VHDL's std_logic):
The "X" value does not exist in real-world circuits, it is merely a placeholder used in simulators and for design purposes. Some simulators support representation of the "Z" value, others do not. The "Z" value does exist in real-world circuits but only as an output state.
Many hardware description language (HDL) simulation tools, such as Verilog and VHDL, support an unknown value like that shown above during simulation of digital electronics. The unknown value may be the result of a design error, which the designer can correct before synthesis into an actual circuit. The unknown also represents uninitialised memory values and circuit inputs before the simulation has asserted what the real input value should be.
HDL synthesis tools usually produce circuits that operate only on binary logic.
When designing a digital circuit, some conditions may be outside the scope of the purpose that the circuit will perform. Thus, the designer does not care what happens under those conditions. In addition, the situation occurs that inputs to a circuit are masked by other signals so the value of that input has no effect on circuit behaviour.
In these situations, it is traditional to use "X" as a placeholder to indicate "Don't Care" when building truth tables. This is especially common in state machine design and Karnaugh map simplification. The "X" values provide additional degrees of freedom to the final circuit design, generally resulting in a simplified and smaller circuit.[1]
Once the circuit design is complete and a real circuit is constructed, the "X" values will no longer exist. They will become some tangible "0" or "1" value but could be either depending on the final design optimisation.
Some digital devices support a form of three-state logic on their outputs only. The three states are "0", "1", and "Z".
Commonly referred to as tristate [2] logic (a trademark of National Semiconductor), it comprises the usual true and false states, with a third transparent high impedance state (or 'off-state') which effectively disconnects the logic output. This provides an effective way to connect several logic outputs to a single input, where all but one are put into the high impedance state, allowing the remaining output to operate in the normal binary sense. This is commonly used to connect banks of computer memory and other similar devices to a common data bus; a large number of devices can communicate over the same channel simply by ensuring only one is enabled at a time.
It is important to note that while outputs can have one of three states, inputs can only recognise two. Hence the kind of relations shown in the table above do not occur. Although it could be argued that the high-impedance state is effectively an "unknown", there is absolutely no provision in the vast majority of normal electronics to interpret a high-impedance state as a state in itself. Inputs can only detect "0" and "1".
When a digital input is left disconnected (i.e., when it is given a high impedance signal), the digital value interpreted by the input depends on the type of technology used. TTL technology will reliably default to a "1" state. On the other hand CMOS technology will temporarily hold the previous state seen on that input (due to the capacitance of the gate input). Over time, leakage current causes the CMOS input to drift in a random direction, possibly causing the input state to flip. Disconnected inputs on CMOS devices can pick up noise, they can cause oscillation, the supply current may dramatically increase (crowbar power) or the device may completely destroy itself.
True ternary logic can be implemented in electronics, although the complexity of design has thus far made it uneconomical to pursue commercially and interest has been primarily confined to research, since 'normal' binary logic is much cheaper to implement and in most cases can easily be configured to emulate ternary systems. However, there are useful applications in fuzzy logic and error correction, and several true ternary logic devices have been manufactured (see external links).